HA$PBExportHeader$u_dw.sru
forward
global type u_dw from datawindow
end type
end forward

global type u_dw from datawindow
integer width = 686
integer height = 400
string title = "none"
boolean livescroll = true
borderstyle borderstyle = stylelowered!
event mousemove pbm_dwnmousemove
end type
global u_dw u_dw

type variables
// datawindow services
n_svc_dw_gridstyle iSrv_GridStyle
n_svc_dw_selectrow iSrv_Select

end variables

forward prototypes
public function boolean of_startservice (string as_servicename)
end prototypes

event mousemove;// highlight header effects
If IsValid(iSrv_GridStyle) Then
	iSrv_GridStyle.Event MouseMove(xpos, ypos, row, dwo)
End If

end event

public function boolean of_startservice (string as_servicename);// start a datawindow service

choose case Lower(as_servicename)
	case "gridstyle"
		iSrv_GridStyle = Create n_svc_dw_gridstyle
		iSrv_GridStyle.of_Register(this)
	case "select"
		iSrv_Select = Create n_svc_dw_selectrow
		iSrv_Select.of_Register(this)
	case else
		Return False
end choose

Return True

end function

on u_dw.create
end on

on u_dw.destroy
end on

event rowfocuschanged;// select rows
If IsValid(iSrv_Select) Then
	iSrv_Select.Event RowFocusChanged(currentrow)
End If

end event

event rbuttondown;// display sort popup menu
If IsValid(iSrv_GridStyle) Then
	iSrv_GridStyle.Event RButtonDown(xpos, ypos, row, dwo)
End If

end event

event clicked;// sort on grid headers
If IsValid(iSrv_GridStyle) Then
	iSrv_GridStyle.Event Clicked(xpos, ypos, row, dwo)
End If

// select rows
If IsValid(iSrv_Select) Then
	iSrv_Select.Event Clicked(xpos, ypos, row, dwo)
End If

end event

event retrieveend;// resize column width
If IsValid(iSrv_GridStyle) Then
	iSrv_GridStyle.Event RetrieveEnd(rowcount)
End If

end event

event doubleclicked;// select rows
If IsValid(iSrv_Select) Then
	iSrv_Select.Event DoubleClicked(xpos, ypos, row, dwo)
End If

end event

event resize;// resize the shadow
If IsValid(iSrv_GridStyle) Then
	iSrv_GridStyle.Event Resize(sizetype, newwidth, newheight)
End If

end event

event other;// highlight header effects
If IsValid(iSrv_GridStyle) Then
	iSrv_GridStyle.Event Other(wparam, lparam)
End If

end event

event constructor;this.SetTransObject(sqlca)

end event

